package com.yunxi.finance.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.web.ApiResult;
import com.yunxi.finance.pojo.*;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 * 返利与佣金 服务类
 * </p>
 *
 * @author 
 * @since 2019-09-16
 */
public interface DynamicRebateCommissionDubboService {

    DynamicRebateCommissionQueryRespVO getById(String id) throws InvocationTargetException, IllegalAccessException;

    void saveOrUpdate(DynamicRebateCommissionQueryReqVO dynamicRebateCommissionVO) throws InvocationTargetException, IllegalAccessException;

    void removeById(String id);

    PageInfo<DynamicRebateCommissionQueryRespVO> findPageByVO(DynamicRebateCommissionQueryReqVO dynamicRebateCommissionVO, Integer pageNum, Integer pageSize) throws InvocationTargetException, IllegalAccessException;

    void removeByListVo(List<DynamicRebateCommissionQueryReqVO> dynamicRebateCommissionVOList) throws IllegalAccessException, InvocationTargetException, InstantiationException;

    List listByVo(DynamicRebateCommissionQueryReqVO dynamicRebateCommissionVO);

    PageInfo<DynamicRebateCommissionQueryRespVO> queryDynamicRebateCommissionByList(DynamicRebateCommissionQueryReqVO dynamicRebateCommissionVO, Integer pageNum, Integer pageSize);

    DynamicRebateCommissionQueryRespVO queryDynamicRabateCommissionBySingle(DynamicRebateCommissionQueryReqVO vo);

    boolean audit(DynamicRebateCommissionAuditReqVO vo);

    boolean keepAccounts(String orderNo);

    void save(DynamicRebateCommissionQueryReqVO dynamicRebateCommissionVO);

    RebateExportData exportData(DynamicRebateCommissionQueryReqVO vo);

    List<DynamicRebateCommissionQuerySumRespVO> queryExportDataMainData(DynamicRebateCommissionQueryReqVO vo);

    List<OrderRebateQueryRespVO> queryOrderRebateByList(DynamicRebateCommissionQueryReqVO vo);

    List<HandleRebateQueryRespVO> queryHandleRebateByList(DynamicRebateCommissionQueryReqVO vo);

    List<CustomerRebateQueryRespVO> queryCustomerRebateByList(DynamicRebateCommissionQueryReqVO vo);

    ApiResult importData(DynamicRebateCommissionImportReqVO vo);

    void rebateForZiYouZiJin(String orderNo);
}
